import { Application } from "../Application";

/**
 * RpcHandler类
 * 定义Rpc方法时继承这个类且需要默认导出
 * 外部不要直接引用Handler类
 * ```
 * export default class RpcXXX extends RpcHandler {
 *     
 *     //Rpc方法应该返回RpcCallRes才会被代码提示导出:
 *     funcName():RpcCallRes<any>{
 *         //.....do something
 *         return {err,data};
 *     }
 * 
 * }
 * 
 * //代码提示定义
 * //stype为servers目录下服务器类型
 * //handlerName为rpc目录下的文件名
 * declare global {
 *    interface Rpc {
 *        stype: {
 *            handlerName: RpcHandlerProxy<RpcXXX>
 *        }
 *     }
 * }
 * ```
 */
export class RpcHandler {

    app: Application;

    constructor(app: Application) {
        this.app = app;
    }

    /**
     * 重载时调用
     */
    onReload(old: this) {

    }

}